package main

import "fmt"

type Animal struct{
	Age int
	Weight float32
}

func (an Animal) shoult(){
	fmt.Println("我会大声喊叫")
}

func (an Animal) show(){
	fmt.Printf("我的年龄是：%v，我的体重是：%v \n",an.Age,an.Weight)
}

type Cat struct{
	Animal
	Age int
}

func (cat Cat)scratch(){
	fmt.Println("我会挠人")
}



func (cat Cat) show(){
	fmt.Printf("我的年龄是--：%v，我的体重是--：%v \n",cat.Age,cat.Weight)
}

func main(){
	cat := Cat{}

	// cat.Animal.Age = 3
	// cat.Animal.Weight = 11.5

	// cat.Animal.shoult()
	// cat.Animal.show()

	//匿名结构体可以简化
	cat.Age = 3	//就近原则
	cat.Weight = 11.5	//就近原则

	cat.shoult()
	cat.show()
	cat.Animal.show()
	cat.scratch()

	// fmt.Println(cat)
}